package java_learn.java_jinjie.object;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素，如果有，就把这个 元素取出来，继续在判断，如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业 术语称为迭代。
Iterator接口的常用方法如下:
public E next() :返回迭代的下一个元素。
public boolean hasNext() :如果仍有元素可以迭代，则返回 true。
Iterator迭代器是一个接口，我们无法直接使用，需要使用Iterator接口的实现类对象，获取实现类的方式比较特殊
Collection接口中有一个方法，叫Iterator(),返回的就是实现类迭代器
Iterator<E> iterator
使用步骤：
1.使用集合中的方法iterator()获取迭代器的实现类对象，使用Iterator接口来接受（多态）
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法Next取出集合中的下一个元素。
 */
public class DemoIterator {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<>();
        coll.add("yaoming");
        coll.add("test2");
        coll.add("test3");
        Iterator<String> it = coll.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        for (Iterator<String> it2 = coll.iterator(); it2.hasNext(); ) {
            String s = it2.next();
            System.out.println(s);
        }
        for (String a : coll) {
            System.out.println(a);
        }
    }
}
